home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
HPAVC
/
HPAVC CD-ROM.iso
/
SMEGUPD1.ZIP
/
SMEG03.ZIP
/
GENDEMO.ASM
next >
Wrap
Assembly Source File
|
1994-06-17
|
3KB
|
159 lines
EXTRN POLYMORPH : NEAR
EXTRN ENCRYPT : NEAR
EXTRN JUNK_GEN : NEAR
SMEGSIZE EQU 2016
CODESG SEGMENT BYTE PUBLIC
ASSUME CS:CODESG,DS:CODESG,ES:CODESG,SS:CODESG
ORG 100h
BEGIN: JMP MAIN
F_NAME: DB '0000.COM',0
SELECT_MES: DB 'SMEG v0.3. Generation Difference Demonstration'
DB 13,10,9
DB ' (C) The Black Baron 1994',13,10,10,10
DB 'SELECT THE NUMBER OF GENERATIONS:',13,10,10
DB '1 -- 10 Generations',13,10
DB '2 -- 100 ""',13,10
DB '3 -- 1000 ""',13,10
DB '4 -- 10000 "" (Large HD`s Only!!)$'
MES1: DB ' 10 $'
MES2: DB ' 100 $'
MES3: DB ' 1000 $'
MES4: DB ' 10000 $'
GEN_MES: DB 13,10,10,10
DB 'Generating$'
WAIT_MES: DB 'Executable .COM Generations, Please Wait...$'
DONE: DB 13,10,10
DB 'DONE! Now examine each, and note how different they are!'
DB 13,10,10,7,'$'
ERROR: DB 13,10,10
DB 'SORRY! A disk error has occurred!'
DB 13,10,10,7,'$'
NUM_TABLE: DW 10,MES1,100,MES2,1000,MES3,10000,MES4
MAIN: MOV AX,3
INT 10h
MOV DX,OFFSET SELECT_MES
MOV AH,9
INT 21h
GET_CHOICE: MOV AX,0C07h
INT 21h
CMP AL,'1'
JB GET_CHOICE
CMP AL,'4'
JA GET_CHOICE
SUB AL,'1';
XOR AH,AH
ADD AX,AX
ADD AX,AX
ADD AX,OFFSET NUM_TABLE
XCHG BX,AX
PUSH BX
MOV DX,OFFSET GEN_MES
MOV AH,9
INT 21h
POP BX
MOV CX,[BX]
PUSH CX
MOV DX,[BX+2]
INT 21h
MOV DX,OFFSET WAIT_MES
INT 21h
POP CX
GEN_PROGS: PUSH CX
MOV BP,OFFSET THE_END + SMEGSIZE
MOV DI,OFFSET THE_END + SMEGSIZE + 45
MOV DX,OFFSET DEMO
MOV CX,DEMO_SIZE
MOV AX,100h
CALL POLYMORPH
MOV AH,5Bh
MOV DX,OFFSET F_NAME
XOR CX,CX
INT 21h
JNC CREATED_OK
CLOSE_ERROR: CALL DISP_ERROR
ERROR_END: POP CX
MOV AX,04CFFh
INT 21h
CREATED_OK: XCHG AX,BX
MOV AH,40h
MOV CX,[BP+39]
MOV DX,OFFSET THE_END + SMEGSIZE + 45
INT 21h
JNC WROTE_POLY_OK
CLOSE_IT: CALL DISP_ERROR
MOV AH,3Eh
INT 21h
JMP ERROR_END
WROTE_POLY_OK: CALL ENCRYPT
MOV AH,40h
MOV CX,[BP]
MOV DX,OFFSET THE_END + SMEGSIZE + 45
INT 21h
JC CLOSE_IT
CALL JUNK_GEN
MOV AH,40h
INT 21h
JC CLOSE_IT
MOV AH,3Eh
INT 21h
JC CLOSE_ERROR
MOV BX,OFFSET F_NAME + 3
MOV CX,4
UP_NUMBER: INC BYTE PTR [BX]
CMP BYTE PTR [BX],'9'+1
JB NUM_OK
SUB BYTE PTR [BX],10
DEC BX
LOOP UP_NUMBER
NUM_OK: POP CX
LOOP GEN_PROGS
MOV DX,OFFSET DONE
MOV AH,9
INT 21h
MOV AX,4C00h
INT 21h
DISP_ERROR: MOV DX,OFFSET ERROR
MOV AH,9
INT 21h
RET
DEMO: CALL SKIP_MESSAGE
DB 13,10,'This was decrypted with a SMEG v0.3 generated decryptor!'
DB 13,10,'$'
SKIP_MESSAGE: POP DX
MOV AH,9
INT 21h
MOV AX,4C00h
INT 21h
DEMO_SIZE EQU $ - DEMO
THE_END EQU $
CODESG ENDS
END BEGIN